import java.util.Arrays;
import java.util.Scanner;

/**
 * @author yexy
 * @date 2020/6/2 12:31 上午
 * @description
 * 1. 编程实现以下需求：
 * 根据用户输入的行数和列数来定义一个整型二维数组并输入所有位置的元素值，分别实
 * 现二维数组中所有行和所有列中所有元素的累加和并打印。
 * 再分别实现二维数组中左上角到右下角和右上角到左下角所有元素的累加和并打印。
 */
public class Test1 {
    public static void show(){
        System.out.println("请输入行数和列数：");
        Scanner scanner = new Scanner(System.in);
        int col = scanner.nextInt();
        int row = scanner.nextInt();

        int[][] nums = new int[row][col];

        System.out.println("请输入所有值：");
        //将输入的值保存到二维数组nums中
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                nums[i][j] = scanner.nextInt();
            }
        }

        //打印二维数组nums
        for (int i = 0; i < row; i++) {
            System.out.println(Arrays.toString(nums[i]));
        }

        System.out.println("---------二维数组各行的和：----------");
        for (int i = 0; i < row; i++) {
            System.out.println("第" + (i+1) + "行的和为：" + arrSum(nums[i]));
        }

        System.out.println("---------二维数组各列的和：----------");
        for (int i = 0; i < col; i++) {
            int sum = 0;
            for (int j = 0; j < row; j++) {
                sum += nums[j][i];
            }
            System.out.println("第" + (i+1) + "列的和为：" + sum);
        }



        System.out.println("---------二维数组左上角到右下角的和：----------");
        int sum1 = 0;
        if(col == row){
            for (int i = 0; i < row; i++) {
                sum1 += nums[i][i];
            }
        }else {
            sum1 += nums[0][0];
            sum1 += nums[row-1][col-1];
        }
        System.out.println(sum1);

        System.out.println("---------二维数组右上角到左下角的和：----------");
        int sum2 = 0;
        //判断是行列是否相等
        if(col == row){
            for (int i = 0; i < row; i++) {
                sum2 += nums[i][row-i-1];
            }
        }else {
            sum2 += nums[0][col-1];
            sum2 += nums[row-1][0];
        }
        System.out.println(sum2);
    }

    //数组求和
    public static int arrSum(int[] arr){
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }
}
